Maple 2026 Questions and Posts

These are Posts and Questions associated with the product, Maple 2026

Consider a soil moisture transport problem with parameters: a = 9.88\times10^{-5} m/s,  b = -0.0065\ m3/m3, and D = 3.51*10^{-7} m2/s. The length is L=0.08 m, and no-flux (outflow) is assumed, meaning q=0. In this case θ0= 0.355$ and θL = 0.10.

A solution is expressed as a contour integral involving a complex-valued function V(k,x,t) and evaluated numerically in Maple using parameterized contours k1(r),k2(r),k3(s).

However, when this code is executed, Maple takes an extremely long time and appears to run indefinitely.

Could you suggest an alternative numerical or analytical approach ( that could improve efficiency when evaluating this type of contour integral?

a := 988/10000000;
b := -65/10000;
d := 351/1000000000;
q := 0;
theta0 := 355/1000;
thetaL := 1/10;
L := 8/100;
mu := a*(theta0 + b)/d;
c := a*(thetaL + b)/d;

mu := a*(theta0 + b)/d;
c := a*(thetaL + b)/d;

V := 1/(2*Pi)*exp(-d*k^2*t)*((exp(k*x*I)(mu - k*I) - exp(-mu*L)*exp(k*(L - x)*I)*(mu + L*I))*k*cos(k*L)/(k^2 + mu^2) + c*sin(k*L) - exp(k*L*I)(k*I + c)*sin(k*x)*(1 - exp(-mu*L)*exp(-I*k*L))/(mu + k*I) - (k*cos(k(L - x)) + c*sin(k(L - x)))*(1 - exp(-mu*L)*exp(k*L*I))/(mu - k*I) + 2*I*k*d*(k*cos(k(L - x)) + c*sin(k(L - x)))/(d*k^2 + a*q/d))/(k*cos(k*L) + c*sin(k*L)):

l := 5;
k1 := r -> l + I + r*exp(1/6*I*Pi);
k2 := r -> -l + I + r*exp(5/6*I*Pi);
k3 := s -> s + I;

dk1 := D(k1);
dk2 := D(k2);
dk3 := D(k3);

integrand1 := Re(eval(V, k = k1(r))*dk1(r) + eval(V, k = k2(r))*dk2(r));
integrand3 := Re(eval(V, k = k3(s))*dk3(s));
integrand2 := simplify(evalc(integrand1));

integrand4 := simplify(evalc(integrand3));
approx_u := proc(x, t) local temp1, temp2; temp1 := Int(eval(integrand2, [:-x = x, :-t = t]), r = 0 .. infinity, method = _d01amc); temp2 := Int(eval(integrand4, [:-x = x, :-t = t]), s = -L .. L, method = _d01ajc); evalf(temp1 + temp2); end proc;

Dear power users,

In the attached document, I try to have DO2i in units of "mL/min/m²" on the Y-axis of my plot. I have tried to obtain this with "convert", but to no avail. Could anyone show me how to obtain the desired result?

Thank you for your timePlotQuestionMaplePrimes.mw

Can someone explain why the element selection inside Compare works differently for the second argument?

ode := diff(diff(y(x), x), x)+sin(y(x)) = 0; IC := y(infinity) = Pi; sol := [dsolve([ode, IC])]

diff(diff(y(x), x), x)+sin(y(x)) = 0

 

y(infinity) = Pi

 

[y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi)+_a+c__2))^(1/2), _a = 0 .. _Z)+x+c__2)]

(1)

dsolve([ode, y(x__IC) = y__IC])

y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2)

(2)

ExpressionTools:-Compare(sol[1], [y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2)][1])

"([[y(x)=RootOf(-(∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf(-(∫)[0]^Pi1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+_a+`c__2`))) ⅆ_a+x+`c__2`)],[[y(x)=RootOf(-(∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf(-(∫)[0]^`y__IC`1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+`x__IC`+`c__2`))) ⅆ_a+x+`c__2`),y(x)=RootOf((∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf((∫)[0]^`y__IC`1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+`x__IC`+`c__2`))) ⅆ_a+x+`c__2`)][1]]])"

(3)

whattype(y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2))

exprseq

(4)

ExpressionTools:-Compare(sol[1], (y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2))[1])

"([[y(x)=RootOf(-(∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf(-(∫)[0]^Pi1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+_a+`c__2`))) ⅆ_a+x+`c__2`)],[(y(x)=RootOf(-(∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf(-(∫)[0]^`y__IC`1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+`x__IC`+`c__2`))) ⅆ_a+x+`c__2`),y(x)=RootOf((∫)[0]^_Z1/(sqrt(2 cos(_a)+RootOf((∫)[0]^`y__IC`1/(sqrt(2 cos(_a)+_Z)) ⅆ_a+`x__IC`+`c__2`))) ⅆ_a+x+`c__2`))[1]]])"

(5)

NULL

(y(x) = RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC))+x__IC+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), y(x) = RootOf(Int(1/(2*cos(_a)+RootOf(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. y__IC)+x__IC+c__2))^(1/2), _a = 0 .. _Z)+x+c__2))[1]; ExpressionTools:-Compare(sol[1], %)

y(x) = RootOf(-(Int(1/sqrt(2*cos(_a)+RootOf(-(Int(1/sqrt(2*cos(_a)+_Z), _a = 0 .. y__IC))+x__IC+c__2)), _a = 0 .. _Z))+x+c__2)

(6)
 

NULL

Download Compare_and_indexing_output.mw

# The question is: how to get S knowing E?  All the attemps below after S assigned (suggested by Claude) fail factoring E.  

restart;

interface(showassumed = 0): 
assume(a>=0, b>=0, c>=0);
assume(x::real, y::real,z::real);

S := sqrt(x^2+(a+sqrt(y^2+(b+sqrt(z^2+c^2))^2))^2):
E := expand(S):
simplify(E,sqrt):
combine(E,sqrt):
simplify(combine(E, sqrt), sqrt):
evalindets(E, 'radical', f -> simplify(f, sqrt)):
simplify(radnormal(E), sqrt):

Is there an easier or shorter way to do the following? Any handy package command?

RootOf(-(Int(1/sqrt(2*cos(_a)+RootOf(-(Int(1/sqrt(2*cos(_a)+_Z), _a = 0 .. Pi))+_a+c__2)), _a = 0 .. _Z))+x+c__2)

RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2))^(1/2), _a = 0 .. _Z))+x+c__2)

(1)

indets(RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2))^(1/2), _a = 0 .. _Z))+x+c__2), 'specfunc(anything, RootOf)')

{RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2), RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2))^(1/2), _a = 0 .. _Z))+x+c__2)}

(2)

subs(_a = _b, {RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2), RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2))^(1/2), _a = 0 .. _Z))+x+c__2)}[1])

RootOf(-(Int(1/(2*cos(_b)+_Z)^(1/2), _b = 0 .. Pi))+_b+c__2)

(3)

subs({RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2), RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2))^(1/2), _a = 0 .. _Z))+x+c__2)}[1] = RootOf(-(Int(1/(2*cos(_b)+_Z)^(1/2), _b = 0 .. Pi))+_b+c__2), RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_a)+_Z)^(1/2), _a = 0 .. Pi))+_a+c__2))^(1/2), _a = 0 .. _Z))+x+c__2))

RootOf(-(Int(1/(2*cos(_a)+RootOf(-(Int(1/(2*cos(_b)+_Z)^(1/2), _b = 0 .. Pi))+_b+c__2))^(1/2), _a = 0 .. _Z))+x+c__2)

(4)

NULL

Related question: Is that substitution mathematically correct or does the _a belong to the outermost RootOf?

Download parameters_in_nested_RootOf.mw

To find the recently introduced new command that compares two expressions, I prompted the large model: 

Answer:

A useful Maple command specifically for comparing two expressions is verify.
Use it like this:
verify(expr1, expr2, equal);
This asks Maple whether the two expressions are mathematically equal.
If you want a more robust algebraic check, a very common alternative is:
is(simplify(expr1 - expr2) = 0);
For polynomial expressions, this is also common:
evalb(expand(expr1 - expr2) = 0);

This is not what I was looking for. I was looking for the command that visually highlights differences.
Can the prompt be improved?

Dear Power users, I probably have a stupid question. Till now I converted my data txt files first to excel to import them in Maple 2026. I imagine there must be a better method. I have attached a sample file. As a side question is it possible to import several files at once? Thank you for your support

F12_1.txt

Maple 2026 and Maple 2025.2

Is this a bug in limit? or as designed?

Doing 

limit(sol,[_C3 = 0, _C4 = 0])

Gives internal error. But

limit(sol,_C3 = 0);
limit(%,_C4 = 0);

works and no error.

Worksheet below. I've had problems before with multilimit. I think I need to change my code to do limit one by one from now on.

interface(version);

`Standard Worksheet Interface, Maple 2026.0, Windows 10, March 05 2026 Build ID 2001916`

restart;

sol:=(piecewise(t <= 0,0,t <= Pi,(arctan(tan(t))*cos(t)*_C3*_C4+arctan(tan(t))*sin(t)*_C4^2-cos(t)*_C3*_C4*t+sin(t)*_C3^2*t)/(_C3*cos(t)+_C4*sin(t)),Pi < t,Pi*_C3*(tan(t)*_C3-_C4)/(tan(t)*_C4+_C3))+2*_C3^2+2*_C4^2)*(_C3*cos(t)+_C4*sin(t))/(2*_C3^2+2*_C4^2)

sol := (piecewise(t <= 0, 0, t <= Pi, (arctan(tan(t))*cos(t)*_C3*_C4+arctan(tan(t))*sin(t)*_C4^2-cos(t)*_C3*_C4*t+sin(t)*_C3^2*t)/(cos(t)*_C3+_C4*sin(t)), Pi < t, Pi*_C3*(tan(t)*_C3-_C4)/(tan(t)*_C4+_C3))+2*_C3^2+2*_C4^2)*(cos(t)*_C3+_C4*sin(t))/(2*_C3^2+2*_C4^2)

limit(sol,[_C3 = 0, _C4 = 0])

Error, (in limit/multi/ldegree1) invalid input: limit/multi/ReIm expects its 1st argument, f, to be of type polynom, but received _DIR1*cos(t)+_DIR2*sin(t)

limit(sol,_C3 = 0)

piecewise(t <= 0, _C4*sin(t), t <= Pi, (1/2)*arctan(tan(t))*sin(t)+_C4*sin(t), _C4*sin(t))

limit(%,_C4 = 0)

piecewise(t <= 0, 0, t <= Pi, (1/2)*arctan(tan(t))*sin(t), 0)

 

 

Download limit_problem_april_2_2026.mw

Maple 2026 and 2025

What option to use to make PDEtools:-Solve show all solutions, even double/duplicate ones? I am not able to find it using AI or help.

restart;

eq:=x^2+2*x+1=0;
solve(eq,{x})

x^2+2*x+1 = 0

{x = -1}, {x = -1}

PDEtools:-Solve(eq,x,'allsolutions')

x = -1

_EnvAllSolutions := true:
PDEtools:-Solve(eq,x);

x = -1

 

 

Download PDEtools_solve_march_28_2026.mw

I am asking because I could neither find a type nor a property for nonzero integers. However, with the assume facility it is possible to combine properties 

assume(x<>0,x::integer)
about(x)
Originally x, renamed x~:
  is assumed to be: AndProp(integer,OrProp(RealRange(-infinity,Open(0)),RealRange(Open(0),infinity)))

Or:

restart;
assume(x::Non(0),x::integer)
about(x)
Originally x, renamed x~:
  is assumed to be: AndProp(integer,OrProp(RealRange(-infinity,Open(0)),RealRange(Open(0),infinity)))

Or:

assume(x::NonZero,x::integer)
about(x)
Originally x, renamed x~:
  is assumed to be: AndProp(integer,OrProp(RealRange(-infinity,Open(0)),RealRange(Open(0),infinity)))

Non(0) is also accepted by the type command which raises the question whether Non(0) is a property, a type or both.

On the other hand type does not recognise NonZero but "::NonZero" is accepted in the assume command (note the :: which is the operator for type definitions). 

The function Non, which is also listed under types, is also accepted in the context of properties. This is somewhat confusing since types and properties are different in nature. Can somone clarify?

By the way, the above examples also work when Non is replaced with Not because they are equivalent. However showstat(Non) works but showstat(Not) throws an error.

Not able to make odetest give zero on this Maple solution to this first order ode.

So not sure if solution is correct or not, as can't also get same solution by hand.

Any one can find a method or way to verify this solution is correct?

odetest says it satisfies the IC but not the ode itself.

Below is worksheet. Tried with Maple 2026 and 2025.2 both give same solution.

Site will not let me upload worksheet. Here is code

ode:=diff(diff(y(x),x),x)+sin(y(x)) = 0;
IC:=y(infinity) = Pi;
sol:=[dsolve([ode,IC])];

the_residue:=odetest(sol[1],[ode,IC]);
the_residue:=odetest(sol[2],[ode,IC]);

Tried many things, including different assumptions, but can't get zero.

 

There seems to be a regression in Maple 2026 in the XMLTools:-ParseFile function.

As Maple2026 is not yet in the list of products to be chosen, I have added it in the subject.

Error, (in XMLTools:-ParseFile) invalid input: too many and/or wrong type of arguments passed to XMLTools:-NSXML:-Parser:-ParseFile; first unused argument is prolog = true

The test file is right from the help related to ParseFile.
Test_XML.mw

Page 1 of 1